﻿namespace TestTool.Proxies.Onvif
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Xml;
    using System.Xml.Serialization;

    [Serializable, GeneratedCode("svcutil", "3.0.4506.2152"), DebuggerStepThrough, DesignerCategory("code"), XmlType(Namespace="http://www.onvif.org/ver10/device/wsdl")]
    public class SecurityCapabilities
    {
        private bool accessPolicyConfigField;
        private bool accessPolicyConfigFieldSpecified;
        private XmlAttribute[] anyAttrField;
        private bool defaultAccessPolicyField;
        private bool defaultAccessPolicyFieldSpecified;
        private bool dot1XField;
        private bool dot1XFieldSpecified;
        private bool httpDigestField;
        private bool httpDigestFieldSpecified;
        private bool kerberosTokenField;
        private bool kerberosTokenFieldSpecified;
        private bool onboardKeyGenerationField;
        private bool onboardKeyGenerationFieldSpecified;
        private bool rELTokenField;
        private bool rELTokenFieldSpecified;
        private bool remoteUserHandlingField;
        private bool remoteUserHandlingFieldSpecified;
        private bool sAMLTokenField;
        private bool sAMLTokenFieldSpecified;
        private int[] supportedEAPMethodsField;
        private bool tLS10Field;
        private bool tLS10FieldSpecified;
        private bool tLS11Field;
        private bool tLS11FieldSpecified;
        private bool tLS12Field;
        private bool tLS12FieldSpecified;
        private bool usernameTokenField;
        private bool usernameTokenFieldSpecified;
        private bool x509TokenField;
        private bool x509TokenFieldSpecified;

        [XmlAttribute]
        public bool AccessPolicyConfig
        {
            get
            {
                return this.accessPolicyConfigField;
            }
            set
            {
                this.accessPolicyConfigField = value;
            }
        }

        [XmlIgnore]
        public bool AccessPolicyConfigSpecified
        {
            get
            {
                return this.accessPolicyConfigFieldSpecified;
            }
            set
            {
                this.accessPolicyConfigFieldSpecified = value;
            }
        }

        [XmlAnyAttribute]
        public XmlAttribute[] AnyAttr
        {
            get
            {
                return this.anyAttrField;
            }
            set
            {
                this.anyAttrField = value;
            }
        }

        [XmlAttribute]
        public bool DefaultAccessPolicy
        {
            get
            {
                return this.defaultAccessPolicyField;
            }
            set
            {
                this.defaultAccessPolicyField = value;
            }
        }

        [XmlIgnore]
        public bool DefaultAccessPolicySpecified
        {
            get
            {
                return this.defaultAccessPolicyFieldSpecified;
            }
            set
            {
                this.defaultAccessPolicyFieldSpecified = value;
            }
        }

        [XmlAttribute]
        public bool Dot1X
        {
            get
            {
                return this.dot1XField;
            }
            set
            {
                this.dot1XField = value;
            }
        }

        [XmlIgnore]
        public bool Dot1XSpecified
        {
            get
            {
                return this.dot1XFieldSpecified;
            }
            set
            {
                this.dot1XFieldSpecified = value;
            }
        }

        [XmlAttribute]
        public bool HttpDigest
        {
            get
            {
                return this.httpDigestField;
            }
            set
            {
                this.httpDigestField = value;
            }
        }

        [XmlIgnore]
        public bool HttpDigestSpecified
        {
            get
            {
                return this.httpDigestFieldSpecified;
            }
            set
            {
                this.httpDigestFieldSpecified = value;
            }
        }

        [XmlAttribute]
        public bool KerberosToken
        {
            get
            {
                return this.kerberosTokenField;
            }
            set
            {
                this.kerberosTokenField = value;
            }
        }

        [XmlIgnore]
        public bool KerberosTokenSpecified
        {
            get
            {
                return this.kerberosTokenFieldSpecified;
            }
            set
            {
                this.kerberosTokenFieldSpecified = value;
            }
        }

        [XmlAttribute]
        public bool OnboardKeyGeneration
        {
            get
            {
                return this.onboardKeyGenerationField;
            }
            set
            {
                this.onboardKeyGenerationField = value;
            }
        }

        [XmlIgnore]
        public bool OnboardKeyGenerationSpecified
        {
            get
            {
                return this.onboardKeyGenerationFieldSpecified;
            }
            set
            {
                this.onboardKeyGenerationFieldSpecified = value;
            }
        }

        [XmlAttribute]
        public bool RELToken
        {
            get
            {
                return this.rELTokenField;
            }
            set
            {
                this.rELTokenField = value;
            }
        }

        [XmlIgnore]
        public bool RELTokenSpecified
        {
            get
            {
                return this.rELTokenFieldSpecified;
            }
            set
            {
                this.rELTokenFieldSpecified = value;
            }
        }

        [XmlAttribute]
        public bool RemoteUserHandling
        {
            get
            {
                return this.remoteUserHandlingField;
            }
            set
            {
                this.remoteUserHandlingField = value;
            }
        }

        [XmlIgnore]
        public bool RemoteUserHandlingSpecified
        {
            get
            {
                return this.remoteUserHandlingFieldSpecified;
            }
            set
            {
                this.remoteUserHandlingFieldSpecified = value;
            }
        }

        [XmlAttribute]
        public bool SAMLToken
        {
            get
            {
                return this.sAMLTokenField;
            }
            set
            {
                this.sAMLTokenField = value;
            }
        }

        [XmlIgnore]
        public bool SAMLTokenSpecified
        {
            get
            {
                return this.sAMLTokenFieldSpecified;
            }
            set
            {
                this.sAMLTokenFieldSpecified = value;
            }
        }

        [XmlAttribute]
        public int[] SupportedEAPMethods
        {
            get
            {
                return this.supportedEAPMethodsField;
            }
            set
            {
                this.supportedEAPMethodsField = value;
            }
        }

        [XmlAttribute("TLS1.0")]
        public bool TLS10
        {
            get
            {
                return this.tLS10Field;
            }
            set
            {
                this.tLS10Field = value;
            }
        }

        [XmlIgnore]
        public bool TLS10Specified
        {
            get
            {
                return this.tLS10FieldSpecified;
            }
            set
            {
                this.tLS10FieldSpecified = value;
            }
        }

        [XmlAttribute("TLS1.1")]
        public bool TLS11
        {
            get
            {
                return this.tLS11Field;
            }
            set
            {
                this.tLS11Field = value;
            }
        }

        [XmlIgnore]
        public bool TLS11Specified
        {
            get
            {
                return this.tLS11FieldSpecified;
            }
            set
            {
                this.tLS11FieldSpecified = value;
            }
        }

        [XmlAttribute("TLS1.2")]
        public bool TLS12
        {
            get
            {
                return this.tLS12Field;
            }
            set
            {
                this.tLS12Field = value;
            }
        }

        [XmlIgnore]
        public bool TLS12Specified
        {
            get
            {
                return this.tLS12FieldSpecified;
            }
            set
            {
                this.tLS12FieldSpecified = value;
            }
        }

        [XmlAttribute]
        public bool UsernameToken
        {
            get
            {
                return this.usernameTokenField;
            }
            set
            {
                this.usernameTokenField = value;
            }
        }

        [XmlIgnore]
        public bool UsernameTokenSpecified
        {
            get
            {
                return this.usernameTokenFieldSpecified;
            }
            set
            {
                this.usernameTokenFieldSpecified = value;
            }
        }

        [XmlAttribute("X.509Token")]
        public bool X509Token
        {
            get
            {
                return this.x509TokenField;
            }
            set
            {
                this.x509TokenField = value;
            }
        }

        [XmlIgnore]
        public bool X509TokenSpecified
        {
            get
            {
                return this.x509TokenFieldSpecified;
            }
            set
            {
                this.x509TokenFieldSpecified = value;
            }
        }
    }
}

